#ifndef __IHASHABLE_H__
#define __IHASHABLE_H__

namespace hash_map{
	class IHashable{
	public:
		virtual int getHashCode()=0;
		virtual bool operator==(const IHashable& b)=0;
		virtual ~IHashable(){}
	};

	template<class T>
	class AHashable:public IHashable{
		T self;
	public:
		AHashable(T);
		virtual int getHashCode();
		virtual bool operator==(const IHashable& b);
	};
}

#endif __IHASHABLE_H__

